Rotating disk data storage units are commonly used to store data in computer systems. Generally, each disk surface is formatted into a plurality of tracks, each track comprising a plurality of physical sectors. Movable read-write transducer heads positioned proximate to the disk surface are used to record the track and sector formats, and to read data from and write data to each physical sector. An important issue is to correctly and reliably locate the read-write head at any desired track position.
The head of a typical disk drive is generally positioned by means of a servo system. Data on a disk drive is normally stored in a set of concentric tracks on the surface of the rotating disk. Furthermore, the surface of a storage disk drive is radially divided into data regions and servo regions. Thus, each concentric track is also divided into servo regions and data regions. The servo regions and the data regions are normally alternating on the surface of a disk drive (FIG. 1). The data regions are places where data is stored. The servo regions on a track contains address information for the adjacent data regions on the same track. The read-write head locates a desired data track section by moving along the servo region, towards or away from the center of rotation of the disks, and reading a correct address on a servo region on a track. The addresses or track identifications (TIDs) are normally written in the form of Gray codes or modified Gray Codes.
A Gray code is a modified binary code. An important property of a Gray code is that the distance between adjacent code words is only one, wherein the distance between two code words is defined as the number of bits which are different between two code words.
When an error in the TID region occurs, the read-write head will read an address code word that is different from the actual address code word. Consequently, the read-write head may be conveyed to an unintended data section. Thus, a method is required for the disk drive to detect and further correct these erroneous readings. In other words, the addresses must be written on the disk in such a way that even with a number of errors in a retrieved reading, that is, the address as it is read from the disk, the section will still be correctly identified.
A Gray coded TID cannot reliably detect even a single bit error, i.e. a single bit difference between the read code word and the actual code word. A single bit error may cause the read-write head either to move to an adjacent location or to give an erroneous reading, since the distance between the adjacent Gray coded TID is exactly one. With the help of PES bursts, a Gray coded TID can detect a single bit error in an on-track situation, yet cannot detect a single bit error in an off-track situation. This is explained in the following example.
Using a 16-bit Gray code, track 0 is represented by the 16-bit vector 00 . . . 0, track 1 by 00 . . . 01 and track 2 by 00 . . . 11. Assume that the target track is track 2. Then, if the reading head is, say, on track 0, and the bits are correctly read by the head, then it will be correctly concluded that the head is on track 0 and it needs to move. Further, the PES bursts give a means to confirming that the track is an even track. The situation changes when there is an error in the reading, and we read, say, 00 . . . 01 (i.e., an error in the last bit). In this case, this cannot be confused with track 1, since the PES will determine that we are in an even track, so at least an error has occurred. We cannot decide if the correct track is 0 or 2, though, since the read vector is at distance 1 from both 00 . . . 0 and 00 . . . 011. Therefore, for the prior art, one error in the on-track reading can be detected (although cannot be corrected).
In the off-track situation, assume that the head is between tracks 0 and 1. If there are no errors, the reading will be either 00 . . . 0 or 00 . . . 01. This cannot be confused with the target 00 . . . 011. However, assume that an error occurs in the next to last bit and 00 . . . 011 is read. The system will assume that we are on the target track. Clearly, this is not a desirable situation, because errors in the off-track situation may not be detected with the traditional system using Gray code.
One method of achieving error detection property is to add redundant bits to the TID code words. For example, an entire TID may be repeated to form a new code. As a result, when an error occurs in a reading, the redundant bits will not match the original bits. This method enables a disk drive to detect even a single bit error. This method, however, is inefficient because the redundancy is 100% and no error correction is achieved.
L. Weng et. al. describe a method and apparatus for encoding and mapping magnetic disk sector address in U.S. Pat. No. 4,949,200. The purpose of Weng's method is to correctly identify the address even in the presence of errors. The code according to Weng's patent does not assume fixed distance between adjacent code words. However, it is desirable that adjacent code words are at a fixed distance d to allow efficient off-track reading.
In other prior art, the 7 least significant bits of a 16-bit TID is repeated to form the redundant bits. When an error occurs in the reading of the 7 least significant bits, a mismatch is detected when these 7 least significant bits are compared with the redundant bits. Erroneous readings can be detected provided that the error occurs in the 7 least significant bits. On the other hand, an error occurring in the 9 least-significative bits will not be detected by the method. Furthermore, this method does not allow for correction of errors.
A. J. van Zanten, in IEEE Trans. Inform. Theor. 39 (1993) 1988, describes a modification of the Gray codes typically used for TIDs. In his modified Gray codes, adjacent code words differ by d bits, and every code word differs from every other by at least d bits. However, van Zanten does not describe a method for using these codes for encoding TIDs.
In reviewing the prior art, it becomes obvious that a reliable method for detecting and correcting erroneous TID readings in a magnetic storage disk is needed.